Skip to content

Conversation

@Brazol
Copy link

@Brazol Brazol commented Nov 25, 2025

Use AudioSwitch for focus change listener to have a single source of focus truth.
Check phone state permissions to avoid crashes

Co-authored-by: Sahil Kumar <xdsahil@gmail.com>
Copilot finished reviewing on behalf of xsahil03x November 25, 2025 10:18
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request fixes audio interruption handling on Android by consolidating audio focus management through AudioSwitch and adding permission checks to prevent crashes related to telephony state monitoring.

  • Deprecated unused audio attribute parameters (androidAudioAttributesUsageType and androidAudioAttributesContentType) that are no longer needed with the new AudioSwitch-based approach
  • Implemented a forwarding listener pattern to allow dynamic audio focus listener updates without recreating AudioSwitch
  • Added comprehensive permission checking and error handling for telephony state monitoring to prevent SecurityExceptions

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
lib/src/native/factory_impl.dart Deprecated audio attribute parameters and removed their usage in method call arguments
lib/src/helper.dart Added regainAndroidAudioFocus() helper method for manually requesting audio focus
android/src/main/java/io/getstream/webrtc/flutter/audio/AudioSwitchManager.java Introduced ForwardingAudioFocusChangeListener pattern and setAudioFocusChangeListener() method for dynamic listener management
android/src/main/java/io/getstream/webrtc/flutter/audio/AudioFocusManager.java Refactored to use AudioSwitch for focus changes, added permission checking, improved thread safety with interruption state tracking, and added try-catch for telephony registration
android/src/main/java/io/getstream/webrtc/flutter/MethodCallHandlerImpl.java Removed deprecated audio attribute parameter handling, added regainAndroidAudioFocus case, and cleanup in dispose method
CHANGELOG.md Documented the audio focus improvements and new API

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Base automatically changed from feat/audio-playback-pause-resume to main November 25, 2025 12:49
@Brazol Brazol merged commit dcc8f3d into main Nov 25, 2025
16 of 17 checks passed
@Brazol Brazol deleted the fix/audio-interruption-android-fix branch November 25, 2025 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants